/*
  缓冲区Buffer   用来存储数据的一段内存  使用的是 16进制
  存储时 是以字节为单位的
  字节（byte）一个字节是由8位2进制表示

*/
// let b1 = new Buffer(12);// 12个字节的大小
// b1.write("珠峰", 2, 3, 'utf-8')// （编写字符，从BUffer的哪个位置开始，写几个字节，编码格式）
// //  一个汉字是由三个字节组成的
// console.log(b1.toString());

// let b1 = Buffer.alloc(12);// 新版写法
// // b1.write("珠峰", 2, 3, 'utf-8')
// console.log(b1);

// let b1 = Buffer.alloc(12, "珠峰");// 创造一个12字节大小的buffer然后使用 珠峰 填充
// console.log(b1.toString())


let b1 = Buffer.from("珠峰") // 直接把对应字符串转成大小一致的buffer
let b2 = Buffer.from("hello")
console.log(b1.length, b2)

let b3 = Buffer.alloc(12);
//  把b1拷贝到b3 从b1的0的位置到6的位置 拷贝到b3的5位置及以后
b1.copy(b3, 5, 0, 6)// 
b2.copy(b3, 0, 0, 5)
console.log(b3.length);

let b4 = Buffer.concat([b2, b1]) // 合并buffer
console.log(b4.length)
// buffer的length 指的是  字节的长度  不是字符串的长度
console.log(b4.slice(1, 3)) // 从buffer的主索引1的位置开始获取到索引为3结束  不包含3

/*
 buffer 对应的是 一个端缓存区 是用来存储属的
 两种创建方式 alloc()  from()
 copy  toString slice  length
 concat 合并buffer
*/